60f537
@@ -688,16 +688,20 @@
public class BucketCache implements BlockCache, HeapSize {
       try {
         while (cacheEnabled && writerEnabled) {
           try {
-            // Blocks
-            entries.add(inputQueue.take());
-            inputQueue.drainTo(entries);
-            synchronized (cacheWaitSignals[threadNO]) {
-              cacheWaitSignals[threadNO].notifyAll();
+            try {
+              // Blocks
+              entries.add(inputQueue.take());
+              inputQueue.drainTo(entries);
+              synchronized (cacheWaitSignals[threadNO]) {
+                cacheWaitSignals[threadNO].notifyAll();
+              }
+            } catch (InterruptedException ie) {
+              if (!cacheEnabled) break;
             }
-          } catch (InterruptedException ie) {
-            if (!cacheEnabled) break;
+            doDrain(entries);
+          } catch (Exception ioe) {
+            LOG.error("WriterThread encountered error", ioe);
           }
-          doDrain(entries);
         }
       } catch (Throwable t) {
         LOG.warn("Failed doing drain", t);
@@ -1286,4 +1290,4 @@
public class BucketCache implements BlockCache, HeapSize {
   public BlockCache[] getBlockCaches() {
     return null;
   }
-}
\ No newline at end of file
+}
